import 'package:flutter/material.dart';

class MyApp4 extends StatefulWidget {
  const MyApp4({super.key});

  // 1. 初始阶段- createState
  @override
  State<MyApp4> createState() {
    debugPrint('createState--执行了');
    return _MyApp4State();
  }
}

class _MyApp4State extends State<MyApp4> {
  // 定义状态
  int age = 30;

  // 2. 初始阶段- initState
  @override
  void initState() {
    // 常用: 请求网络数据, 更新状态
    debugPrint('initState--执行了');
    super.initState();
  }

  // 3. 更新阶段 - didChangeDependencies
  @override
  void didChangeDependencies() {
    debugPrint('didChangeDependencies--执行了');
    super.didChangeDependencies();
  }

  // 5. 构建阶段 - didUpdateWidget
  @override
  void didUpdateWidget(covariant MyApp4 oldWidget) {
    debugPrint('didUpdateWidget--执行了');
    super.didUpdateWidget(oldWidget);
  }

  // 4. 构建阶段 - build
  @override
  Widget build(BuildContext context) {
    debugPrint('build执行了');
    return Scaffold(
      // 1. 导航条
      appBar: AppBar(
        title: const Text('生命周期'),
        backgroundColor: Colors.pink,
      ),
      // 2. 主体内容
      body: Center(
        child: Text(
          '我叫鸭蛋, 今年$age岁',
          style: const TextStyle(fontSize: 30, color: Colors.red),
        ),
      ),
      // 3. 浮动按钮
      floatingActionButton: FloatingActionButton(
        onPressed: () {
          // 更新状态
          setState(() {
            age++;
          });
        },
        child: const Icon(Icons.add),
      ),
    );
  }

  // 6. 销毁阶段-销毁之前
  @override
  void deactivate() {
    // 善后操作, 清除占用的资源, 埋点
    debugPrint('deactivate-组件即将被销毁');
    super.deactivate();
  }

  // 7. 销毁阶段-销毁之后
  @override
  void dispose() {
     debugPrint('dispose-组件即将被销毁');
    super.dispose();
  }
}
